package com.xyz;

import java.util.List;

import com.xyz.config.AppConfig;
import org.springframework.web.WebApplicationInitializer;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration;

//使用注解+配置类方式，设定 spring mvc 项目时，项目的入口
// spring mvc 中 ，设定的web 应用初始化接口，实现了这个接口的类，就是应用spring mvc 程序的入口类
public class MainAppInitializer implements WebApplicationInitializer {


    @Override
    public void onStartup(ServletContext servletContext) throws ServletException {
        // spring 框架的上下文，同时也是 mvc 应用的上下文，他可以用来配置整个项目
        AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
        // 注册配置类
        ctx.register(AppConfig.class);
        // 通过spring 框架上下文，设置 servlet 上下文（mvc web 应用）
        ctx.setServletContext(servletContext);

        // 具体实现servlet 上下文
        ServletRegistration.Dynamic springMvcServlet = servletContext.addServlet("dispatcher",new DispatcherServlet(ctx));
        springMvcServlet.setLoadOnStartup(1);

    }
}